Robots are most often used in the industry to perform repetitive work tasks. In this case, what is important is that the task is completed correctly and reliably. How enjoyable it is to watch the robot perform the task is unimportant.
Existing practice is for a human programmer to program the robot for each task. The important robot positions related to the task may be defined by directly positioning the robot and storing the positions. The programmer then writes code which references the stored positions and instructs the robot to perform the desired task.
However, in recent years it has been popular to use robots to move entertainment elements, such as a video display, a video projector or a staircase, for the purpose of entertaining people. For example, there are a large number of robots performing together with people on a stage in a show. This can be a musical show where people and robots are on-stage, or a trade show, where robots move display panels. It can also apply to designer stores and areas where robots handle displays or scanning equipment with people. A challenge of such a system is how to build a robot program and synchronize the robot motion to a show's playlist as well as to actions on the stage or both.
U.S. Pat. No. 8,356,704 discloses a robotically controlled entertainment element, such as a video display, a video projector or a staircase. A robot moves the entertainment element in three dimensions.
Programming a robot for the purposes of entertaining spectators is qualitatively different in many ways from programming robots in the industry. The robots typically have a well-defined set of specific move sequences designed for visual appeal. There is no requirement for intelligent decision making on the part of the robot and the focus is entirely on appearance. Programming the robot to make natural, “organic” looking movements using traditional programming methods is at best very difficult and time-consuming; at worst, nearly impossible.
Because of the absence of decision-making in the program and the focus on visual appeal, the programming of robot motion for entertaining performances has more in common with computer animation than with traditional robotics programming. The ideal solution, then, is to define the robot performance in exactly the same way that a computer animator would define an animation of the robot performance.
It is known to use existing 3D computer animation software and existing computer animation talent to create a robot animation sequence. A computer animator uses the computer animation software to animate a model of the real robot within the physical limitations of the real robot. A robot program is then created from the animation in such a way that the motions of the real robot exactly match the motions of the animated robot.
Today, show designers use external 3D animation tools, such as MAYA, to design the robot motion together with the human motions and possible music synchronization in a show or trade show. The show designer designs the robot motions in advance in a studio far away from the place where the show is to be performed and using software models of the robots. When the show is to be performed with real robots on a real stage, with real people acting in the show, it often happens that the motions of the robot need to be changed in order to fit with the real environment and other circumstances, which were not foreseen during creation of the robot animation sequence. Thus, there is a need to edit the motions of the robots after the animation and the robot program code have been created. In particular, there is a need to edit the robot motions onsite together with the real robots, for example, during rehearsal of the show. For example, there is a need to change the sequence of robot motions. However, the motions of the robots were synchronized in time during the creation of the robot animation sequence. Thus, when changing the sequence of robot motions there is a risk for collisions between the robots.